package com.example.demo.mapper;

import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 管理员用户角色和管理员用户权限关联关系Mapper
 *
 * @author 叮当猫的百宝箱
 * @since 1.0
 */
public interface AdminRolePermissionMapper {

    /**
     * 向角色添加单个权限关联关系。
     *
     * @param adminRoleId       角色ID
     * @param adminPermissionId 权限ID
     * @return 受影响行数
     */
    int addAdminRolePermission(@Param("adminRoleId") Long adminRoleId, @Param("adminPermissionId") Long adminPermissionId);

    /**
     * 向角色添加多个权限关联关系。
     *
     * @param adminRoleId        角色ID
     * @param adminPermissionIds 权限ID列表
     * @return 受影响行数
     */
    int addAdminRolePermissions(@Param("adminRoleId") Long adminRoleId, @Param("adminPermIds") List<Long> adminPermissionIds);

    /**
     * 删除角色与单个权限的关联关系。
     *
     * @param adminRoleId       角色ID
     * @param adminPermissionId 权限ID
     * @return 受影响行数
     */
    int deleteAdminRolePermission(@Param("adminRoleId") Long adminRoleId, @Param("adminPermissionId") Long adminPermissionId);

    /**
     * 删除角色与多个权限的关联关系。
     *
     * @param adminRoleId        角色ID
     * @param adminPermissionIds 权限ID列表
     * @return 受影响行数
     */
    int deleteAdminRolePermissions(@Param("adminRoleId") Long adminRoleId, @Param("adminPermissionIds") List<Long> adminPermissionIds);
}
